import axios from "axios";
import { Loading } from "element-ui";

// create an axios instance
const service = axios.create({
  // baseURL: process.env.VUE_APP_BASE_API,
  // baseURL: "/api",
  baseURL: "https://www.violetsnow.link",
  timeout: 20000,
});

let el_Loading;

//  请求拦截
service.interceptors.request.use(
  (config) => {
    if (config.loading) {
      el_Loading = Loading.service({
        text: "正在请求资源中~",
        spinner: "el-icon-loading",
        background: "rgba(0, 0, 0, 0.7)",
      });
      // el_Loading = this.$loading({
      //   text: "Loading",
      //   spinner: "el-icon-loading",
      //   background: "rgba(0, 0, 0, 0.7)",
      // });
    }
    // console.log(config);
    return config;
  },
  (error) => {
    // console.log(error);
    return Promise.reject(error);
  }
);

//response 响应拦截
service.interceptors.response.use(
  (response) => {
    el_Loading.close(); //请求成功，关闭加载效果
    const res = response.data;
    return Promise.resolve(res);
    // if (res.status && res.status !== 200) {
    //   this.$message({
    //     showClose: false,
    //     message: res.msg,
    //   });
    //   switch (res.status) {
    //     case 11101:
    //       // ...
    //       break;
    //     case 11102:
    //       // ...
    //       break;
    //     case 11103:
    //       // ...
    //       break;
    //     default:
    //       return Promise.reject(res || "error");
    //   }
    // } else {
    //   return Promise.resolve(res);
    // }
  },
  (error) => {
    el_Loading.close();
    console.log("err" + error); // for debug
    switch (error.response.status) {
      case 401:
        // ...
        break;
      case 500:
        // ...
        break;
      default:
        return Promise.reject(error);
    }
  }
);

export default service;
